var timer = null
var timer2 = null

// 旧事件没有执行完之前是不会执行新事件的
function resize () {
  if (!timer) {
    timer = setTimeout(() => {
      console.log('resize')
      clearTimeout(timer)
    }, 300)
  }
}



// 每次执行的都是新事件
function scroll () {
  if (timer2) {
    clearTimeout(timer2)
    timer2 = setTimeout(() => {
      console.log('resize')
    }, 300)
  }
}

// 节流 - 在规定时间内只执行一次
function debonce(fn, timer) {
  let btn = false
  return function () {
    if (!btn) {
      fn()
      btn = true
    } else {
      setTimeout(() => {
        btn = false
      }, timer)
    }
  }
}
// 防抖 - 规定时间片内如果触发了新事件，那么重新计时，重新设置新事件
function d(fn, timer) {
  let t = null
  return function () {
    if (t) {
      clearTimeout(t)
    } else {
      t = setTimeout(() => {
        fn()
        clearTimeout(t)
      }, timer)
    }
  }
}